# Kapitel 5: 
#  Kreisfrmige Membran mit Anfangsauslenkung
#  2017  Friedrich U. Mathiak, 
# mathiak@mechanik-info.de
> restart: with(LinearAlgebra): with(plots):
> addcoords(ZK,[z,r,phi],[r*cos(phi),r*sin(phi),z]);
# Beispiel 5-4:
# Eine kreisfrmige Membran erhlt durch einen zentrischen Schlag mit einem Trommelstock eine rotationssymmetrische Anfangsauslenkung
> Phi:=w0*(1-rho^2*(3-2*rho)); 
# wobei  = r/a gilt. Grafische Darstellung der bezogenen Anfangsauslenkung  ()/w0 
> para:=rho= 0..1, phi=0..2*Pi,coords=ZK,axes = framed,style = patchcontour,labels=[x,y,z],orientation =[115,-65,-180]:
> plot3d(Phi/w0,para,title="\nBezogene Anfangsauslenkung Phi/w0 einer kreisfrmigen Membran\n");
# Wir berechnen die Integrationskonstanten. 
> rho:=r/a;
> A0m:=2/(a^2*BesselJ(1,zeta)^2)*int(Phi*BesselJ(0,zeta/a*r)*r,r=0..a);
# Der obige Ausdruck kann noch vereinfacht werden, wenn wir die Eigenwertgleichung einer eingespannten Membran bercksichtigen. Es gilt:
> gl:={BesselJ(0,zeta)=0};
> A0m:=unapply(simplify(A0m,gl),zeta);
# Grafische Darstellung der Struve-Funktion H0(x)
> plot(StruveH(0,x),x=0..20,axes=boxed,gridlines=true);
# Mit den Werten unseres Beispiels :
> a:= 0.4; mu:=0.1; n0:=2000.; cM:=sqrt(n0/mu); w0:= 0.01;
# Wir beschaffen uns die ersten 10 Eigenwerte 
> me:=10:
> A0mv:=Vector(me): zeta:=Vector(me): BZ:=Vector(me):
> for m to me do
>   BZ[m] :=evalf(BesselJZeros(0,m));
>   A0mv[m]:=evalf(A0m(BZ[m]));
> end do:
> print(A0mv,BZ);
# Wir animieren die Auslenkung und die Geschwindigkeit
> w:=0.; te:=0.05;
> for m to me do
>   w := w + A0mv[m]*BesselJ(0,BZ[m]/a*r)*cos(BZ[m]/a*cM*t);
> end do:
> p1:=animate(plot3d, [w, r = 0 .. a, phi = 0 .. 2*Pi, coords=ZK], t = 0 .. te, orientation=[145, -75, 175],style = patchcontour,axes=framed,frames = 101):
# Geschwindigkeit
> v:=diff(w,t):
> p2:=animate(plot3d, [v, r = 0 .. a, phi = 0 .. 2*Pi, coords=ZK], t = 0 .. te, orientation=[145, -75, 175],style = patchcontour,axes=framed,frames = 101):
> display(Matrix(1,2,[p1,p2]));
> 
;
